package com.javaex.book.service;

import java.util.List;

import com.javaex.book.pojo.User;
import com.javaex.book.utils.ReturnResult;

public interface UserService {
	
	/**
	 * 注册
	 * @param user 用户信息
	 */
	ReturnResult register(User user);
	
	/**
	 * 登录
	 * @param username 用户名
	 * @param password 用户密码
	 * @return 
	 */
	ReturnResult login(String username, String password);
	
	/**
	 * 检查用户名或邮箱是否已被使用
	 * @param username 用户名
	 * @param email 用户邮箱
	 * @return true表示已被使用，false未被使用
	 */
	boolean existsByUsernameOrEmail(String username, String email);
	
	/**
	 * 查询用户数量
	 * @return 用户数量
	 */
	Integer countUsers();
	
	/**
	 * 查询用户
	 * @param start 分页查询起始位置
	 * @param pageSize 页容量
	 * @return 用户数据
	 */
	List<User> queryUserList(Integer start, Integer pageSize);
	
	/**
	 * 修改用户信息
	 * @param user 新的用户信息
	 * @return 修改结果
	 */
	Integer updateUser(User user);
	
	/**
	 * 根据用户id查询用户信息
	 * @param 用户id
	 * @return 用户信息
	 */
	User queryUserById(Integer id);
	
	/**
	 * 删除用户
	 * @param id 用户id
	 * @return 删除结果
	 */
	Integer deleteUser(Integer id);
}
